import request from './request'

/**
 * 商品相关API
 */

/**
 * 获取商品列表
 * @param {Object} params - 查询参数
 * @param {number} params.current - 当前页
 * @param {number} params.size - 每页大小
 * @param {number} params.categoryId - 分类ID
 * @param {string} params.keyword - 搜索关键词
 * @param {string} params.brand - 品牌筛选
 * @param {number} params.minPrice - 最低价格
 * @param {number} params.maxPrice - 最高价格
 * @param {string} params.sortBy - 排序字段
 * @param {string} params.sortOrder - 排序方向
 * @returns {Promise} 商品列表响应
 */
export const getProductList = (params) => {
    return request({
        url: '/api/public/products',
        method: 'GET',
        params
    })
}

/**
 * 获取商品详情
 * @param {number} id - 商品ID
 * @returns {Promise} 商品详情响应
 */
export const getProductDetail = (id) => {
    return request({
        url: `/api/public/products/${id}`,
        method: 'GET'
    })
}

/**
 * 搜索商品
 * @param {Object} params - 搜索参数
 * @param {string} params.keyword - 搜索关键词
 * @param {number} params.current - 当前页
 * @param {number} params.size - 每页大小
 * @param {string} params.brand - 品牌筛选
 * @param {number} params.minPrice - 最低价格
 * @param {number} params.maxPrice - 最高价格
 * @param {string} params.sortBy - 排序字段
 * @param {string} params.sortOrder - 排序方向
 * @returns {Promise} 搜索结果响应
 */
export const searchProducts = (params) => {
    return request({
        url: '/api/public/products/search',
        method: 'GET',
        params
    })
}

/**
 * 获取热门商品
 * @param {Object} params - 查询参数
 * @param {number} params.limit - 限制数量
 * @returns {Promise} 热门商品响应
 */
export const getHotProducts = (params) => {
    return request({
        url: '/api/public/products/hot',
        method: 'GET',
        params
    })
}


/**
 * 获取新品推荐
 * @param {Object} params - 查询参数
 * @param {number} params.limit - 限制数量
 * @returns {Promise} 新品推荐响应
 */
export const getNewProducts = (params) => {
    return request({
        url: '/api/public/products/new',
        method: 'GET',
        params
    })
}


/**
 * 获取相关商品
 * @param {number} id - 商品ID
 * @param {Object} params - 查询参数
 * @param {number} params.limit - 限制数量
 * @returns {Promise} 相关商品响应
 */
export const getRelatedProducts = (id, params) => {
    return request({
        url: `/api/public/products/${id}/related`,
        method: 'GET',
        params
    })
}

/**
 * 获取品牌列表
 * @param {Object} params - 查询参数
 * @returns {Promise} 品牌列表响应
 */
export const getBrandList = (params) => {
    return request({
        url: '/api/public/products/brands',
        method: 'GET',
        params
    })
}